Video compression is used in many current and emerging products such as digital television set-top boxes (STBs), digital satellite systems (DSSs), high definition television (HDTV) decoders, digital versatile disk (DVD) players, video conferencing, Internet video and multimedia content, and other digital video applications. Without video compression, digital video content can be extremely large, making it difficult or even impossible for it to be efficiently stored, transmitted, or viewed. Broadcast television (TV) and home entertainment systems have vastly improved in recent years due largely in part by the advent of digital TV and DVD video.
The standardization of video compression (video coding) technology, such as the MPEG (Motion Picture Experts Group) series of compression standards make these and other applications possible. The new MPEG4 standard in the MPEG series is enabling Internet-based video applications, while the International Telecommunications Union (ITU) Telecommunication Standardization Sector (ITU-T) H.263 video compression standard is now widely used in videoconferencing systems. The most recent international standard for video image encoding/decoding and compression to be widely pursued by industry is the International ITU-T International Organization for Standardization (ISO) video compression standard known as ITU-T/ISO H.264 or as advanced video codec (AVC) and MPEG-4 Part 10 (“H.264 standard” hereinafter). The H.264 standard was prepared by the Joint Video Team (JVT), which included the ITU-T SG16 Q.6, known as VCEG (Video Coding Expert Group), and the ISO/IEC JTC1/SC29/WG11, known as MPEG. The H.264 standard is designed for the applications in the area of Digital TV broadcast (DTV), Direct Broadcast Satellite (DBS) video, Digital Subscriber Line (DSL) video, Interactive Storage Media (ISM), Multimedia Messaging (MMM), Digital Terrestrial TV Broadcast (DTTB), and Remote Video Surveillance (RVS), among other video compression applications. Others standards include, the Joint Scalable Video Codec (JSVC/H.264 Amendment 3) (H.264 Amendment 3), VC1, China AVS, and the legacy video codec standards such as MPEG-4 Part 2 Versions 1 and 2, MPEG-2, MPEG-1, H.263, and H.261.
These video codec techniques are block based coding techniques that operate on macroblocks of pixels. These block based techniques utilize transform coding and entropy coding on the residue of a motion compensated block. A macroblock may include 16×16 luma pixels. In some standards, a macroblock may be further partitioned into 16×8, 8×16, and 8×8 blocks of pixels. In accordance with the H.264 standard, each 8×8 block, called sub-macroblocks, can be further divided into smaller blocks such as 8×4, 4×8, and 4×4 blocks of pixels.
Higher coding efficiency may be achieved by utilizing the spatial correlation between blocks. Video codec standards usually provide the use of previously decoded neighboring blocks to decode a current macroblock. Specifically, the coding parameters for the reconstruction of the motion vector, intra prediction, content adaptive binary arithmetic coding (CABAC), and macroblock property reconstruction of the current macroblock require the associated information from the previously reconstructed adjacent macroblocks.
In the H.264 standard, the task of reconstructing the coding prediction parameters becomes more complicated due to the flexible macroblock ordering (FMO) and arbitrary slice ordering (ASO) properties. FMO allows a picture to be divided into various scanning patterns such as interleaved slice, dispersed slice, foreground slice, leftover slice, box-out slice, and raster scan slice. ASO allows the slices of a picture to be coded in any relative order. With FMO and ASO, the decoding order of an H.264 standard picture may no longer be in the traditional macroblock raster scan order of the picture. As a result, the design of reconstructing coding parameters and macroblock decoding techniques for H.264 standard video remain challenging tasks. Conventional H.264 standard video codec techniques are implemented in accordance with the concepts from the JM reference software of the H.264 standard committee. The JM reference software, however, utilizes a global data buffer to store the information associated with the decoded macroblock parameters for an entire picture. The retrieval of reference data for decoding the video of the FMO and ASO coding modes requires frequent accesses to an external memory that stores the information from the global data buffer at every macroblock level. Frequent accesses to the external memory at the macroblock level are very costly in hardware implementations. Accordingly, there may be a need for a scheme to reconstruct video coding parameters using FMO and ASO techniques.